package com.iuie.ns.system.mapper.role;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.iuie.ns.frame.persistence.annotations.MyBatisRepository;
import com.iuie.ns.system.vo.resource.SysResourceVO;
import com.iuie.ns.system.vo.role.SysRoleVO;

/**
 * @desc 角色mapper接口
 * @author iuie
 * @date 2017年7月19日 下午11:20:40
 */
@MyBatisRepository
public interface SysRoleMapper {

	/**
	 * @desc 条件查询角色，该角色包含角色的菜单资源，菜单必须是正常状态的
	 * @param role 角色-条件
	 * @return
	 * @date 2017年7月19日 下午11:21:04
	 */
	List<SysRoleVO> findByCondition(@Param("role") SysRoleVO role);

	/**
	 * @desc 根据角色id查询关联的菜单
	 * @param roleId
	 * @return 
	 * @date 2017年7月21日 上午8:50:24
	 */
	List<SysResourceVO> findMenusById(@Param("roleId") String roleId);

    /**
     * 删除角色菜单关系
     * @param roleId 角色id
     * @param resType 资源类型
     * @resType
     * @date 2017年7月23日 下午3:23:37
     */
    void deleteRelation(@Param("roleId") String roleId, @Param("resType") String resType);

    /**
     * @param roleId
     * @param menuIds
     * @date 2017年7月23日 下午3:23:50
     */
    void saveRelation(@Param("roleId") String roleId, @Param("menuIds") String[] menuIds);

    /**
     * 查询
     * @param roleId
     * @return
     * @date 2017年7月25日 上午12:47:51
     */
	SysRoleVO findById(@Param("roleId") String roleId);
	
	/**
	 * 修改角色
	 * @param role
	 * @return
	 * @date 2017年7月25日 上午12:58:56
	 */
	void updateRole(@Param("role") SysRoleVO role);

}
